const logger = require('../logger')
const { post } = require('../axiosClient')
const { serverRoot } = require('../../env.conf')

const adminMenuList = [
  {
    'id': 27,
    'name': 'agent',
    'urlname': '/agent/info',
    'titlename': '\\u8fd0\\u8425\\u5546\\u4fe1\\u606f\\u7ba1\\u7406',
    'pid': 0
  },
  {
    'id': 28,
    'name': 'agent_info',
    'urlname': '/agent/info',
    'titlename': '\\u8fd0\\u8425\\u5546\\u4fe1\\u606f\\u7ba1\\u7406',
    'pid': 27
  },

  {
    'id': 32,
    'name': 'custom',
    'urlname': '/custom/info',
    'titlename': '\\u5ba2\\u6237\\u4fe1\\u606f\\u67e5\\u8be2',
    'pid': 0
  },
  {
    'id': 37,
    'name': 'custom_info',
    'urlname': '/custom/info',
    'titlename': '\\u5ba2\\u6237\\u4fe1\\u606f\\u67e5\\u8be2',
    'pid': 32
  },

  {
    'id': 33,
    'name': 'user_manage',
    'urlname': '/user_manage/app_user_manage',
    'titlename': '\\u7528\\u6237\\u7ba1\\u7406',
    'pid': 0
  },
  {
    'id': 34,
    'name': 'app_user_manage',
    'urlname': '/user_manage/app_user_manage',
    'titlename': 'APP\\u7528\\u6237\\u7ba1\\u7406',
    'pid': 33
  },
  {
    'id': 35,
    'name': 'app_suggest_feedback',
    'urlname': '/user_manage/app_suggest_feedback',
    'titlename': 'APP\\u610f\\u89c1\\u53cd\\u9988',
    'pid': 33
  },
  {
    'id': 36,
    'name': 'login_user_manage',
    'urlname': '/user_manage/login_user_manage',
    'titlename': '\\u767b\\u9646\\u7528\\u6237\\u7ba1\\u7406',
    'pid': 33
  },
  {
    'id': 38,
    'name': 'login_rule_manage',
    'urlname': '/user_manage/login_rule_manage',
    'titlename': '\\u767b\\u9646\\u7528\\u6237\\u89d2\\u8272\\u7ba1\\u7406',
    'pid': 33
  },
  {
    'id': 39,
    'name': 'login_log',
    'urlname': '/user_manage/login_log',
    'titlename': '\\u767b\\u9646\\u65e5\\u5fd7',
    'pid': 33
  },
  {
    'id': 40,
    'name': 'login_msg',
    'urlname': '/user_manage/login_msg',
    'titlename': '\\u767b\\u9646\\u6d88\\u606f',
    'pid': 33
  },

  {
    'id': 41,
    'name': 'record_query',
    'urlname': '/record_query/charge_history',
    'titlename': '\\u8bb0\\u5f55\\u67e5\\u8be2',
    'pid': 0
  },
  {
    'id': 42,
    'name': 'charge_history',
    'urlname': '/record_query/charge_history',
    'titlename': '\\u5145\\u7535\\u5386\\u53f2\\u8bb0\\u5f55',
    'pid': 41
  },
  {
    'id': 43,
    'name': 'upload_history',
    'urlname': '/record_query/upload_history',
    'titlename': '\\u6869\\u5b9a\\u65f6\\u4e0a\\u62a5\\u5386\\u53f2\\u8bb0\\u5f55',
    'pid': 41
  },
  {
    'id': 44,
    'name': 'deal_history',
    'urlname': '/record_query/deal_history',
    'titlename': '\\u4ea4\\u6613\\u8bb0\\u5f55',
    'pid': 41
  },
  {
    'id': 45,
    'name': 'error_history',
    'urlname': '/record_query/error_history',
    'titlename': '\\u6545\\u969c\\u6869\\u5386\\u53f2\\u8bb0\\u5f55',
    'pid': 41
  },

  {
    'id': 46,
    'name': 'stats_statistic',
    'urlname': '/stats_statistic/stats',
    'titlename': '\\u7edf\\u8ba1\\u5206\\u6790',
    'pid': 0
  },
  {
    'id': 48,
    'name': 'stats_income',
    'urlname': '/stats_statistic/stats',
    'titlename': '\\u6c47\\u603b\\u7edf\\u8ba1',
    'pid': 46
  },
  {
    'id': 49,
    'name': 'stats_agent_income',
    'urlname': '/stats_statistic/stats_agent',
    'titlename': '\\u6c47\\u603b\\u7edf\\u8ba1--\\u8fd0\\u8425\\u5546',
    'pid': 46
  },
  {
    'id': 50,
    'name': 'stats_bus_income',
    'urlname': '/stats_statistic/stats_bus',
    'titlename': '\\u6c47\\u603b\\u7edf\\u8ba1--\\u5404\\u8f66\\u8f86',
    'pid': 46
  },
  {
    'id': 51,
    'name': 'stats_charge_type',
    'urlname': '/stats_statistic/stats_charge_type',
    'titlename': '\\u6c47\\u603b\\u7edf\\u8ba1--\\u5145\\u7535\\u7c7b\\u522b',
    'pid': 46
  },
  {
    'id': 52,
    'name': 'stats_month_type',
    'urlname': '/stats_statistic/stats_month_type',
    'titlename': '\\u6c47\\u603b\\u7edf\\u8ba1--\\u6708\\u5ea6+\\u7c7b\\u522b',
    'pid': 46
  },
  {
    'id': 53,
    'name': 'stats_no_card',
    'urlname': '/stats_statistic/stats_no_card',
    'titlename': '\\u6c47\\u603b\\u7edf\\u8ba1--\\u672a\\u5237\\u5361\\u5145\\u7535\\u7edf\\u8ba1',
    'pid': 46
  }
]

const agentMenuList = [
  {
    'id': 27,
    'name': 'agent',
    'urlname': '/agent/info',
    'titlename': '运营商管理',
    'pid': 0
  },
  {
    'id': 58,
    'name': 'user_edit',
    'urlname': '/agent/userEdit',
    'titlename': '充电站管理',
    'pid': 27
  },
  {
    'id': 65,
    'name': 'agent_station_manage',
    'urlname': '/agent/stationManage',
    'titlename': '\\u5145\\u7535\\u7ad9\\u7ba1\\u7406',
    'pid': 27
  },
  {
    'id': 36,
    'name': 'login_user_manage',
    'urlname': '/user_manage/login_user_manage',
    'titlename': '\\u767b\\u9646\\u7528\\u6237\\u7ba1\\u7406',
    'pid': 27
  },
  {
    'id': 38,
    'name': 'login_rule_manage',
    'urlname': '/user_manage/login_rule_manage',
    'titlename': '\\u767b\\u9646\\u7528\\u6237\\u89d2\\u8272\\u7ba1\\u7406',
    'pid': 27
  },
  {
    'id': 39,
    'name': 'login_log',
    'urlname': '/user_manage/login_log',
    'titlename': '\\u767b\\u9646\\u65e5\\u5fd7',
    'pid': 27
  },
  {
    'id': 40,
    'name': 'login_msg',
    'urlname': '/user_manage/login_msg',
    'titlename': '\\u767b\\u9646\\u6d88\\u606f',
    'pid': 27
  },
  {
    'id': 32,
    'name': 'custom',
    'urlname': '/custom/info',
    'titlename': '\\u5ba2\\u6237\\u4fe1\\u606f\\u67e5\\u8be2',
    'pid': 0
  },
  {
    'id': 37,
    'name': 'custom_info',
    'urlname': '/custom/info',
    'titlename': '\\u5ba2\\u6237\\u4fe1\\u606f\\u67e5\\u8be2',
    'pid': 32
  },
  {
    'id': 36,
    'name': 'login_user_manage',
    'urlname': '/user_manage/login_user_manage',
    'titlename': '\\u767b\\u9646\\u7528\\u6237\\u7ba1\\u7406',
    'pid': 33
  },
  {
    'id': 46,
    'name': 'stats_statistic',
    'urlname': '/stats_statistic/stats',
    'titlename': '\\u7edf\\u8ba1\\u5206\\u6790',
    'pid': 0
  },
  {
    'id': 48,
    'name': 'stats_income',
    'urlname': '/stats_statistic/stats',
    'titlename': '\\u6c47\\u603b\\u7edf\\u8ba1',
    'pid': 46
  },
  {
    'id': 49,
    'name': 'stats_agent_income',
    'urlname': '/stats_statistic/stats_agent',
    'titlename': '\\u6c47\\u603b\\u7edf\\u8ba1--\\u8fd0\\u8425\\u5546',
    'pid': 46
  },
  {
    'id': 50,
    'name': 'stats_bus_income',
    'urlname': '/stats_statistic/stats_bus',
    'titlename': '\\u6c47\\u603b\\u7edf\\u8ba1--\\u5404\\u8f66\\u8f86',
    'pid': 46
  },
  {
    'id': 51,
    'name': 'stats_charge_type',
    'urlname': '/stats_statistic/stats_charge_type',
    'titlename': '\\u6c47\\u603b\\u7edf\\u8ba1--\\u5145\\u7535\\u7c7b\\u522b',
    'pid': 46
  },
  {
    'id': 52,
    'name': 'stats_month_type',
    'urlname': '/stats_statistic/stats_month_type',
    'titlename': '\\u6c47\\u603b\\u7edf\\u8ba1--\\u6708\\u5ea6+\\u7c7b\\u522b',
    'pid': 46
  },
  {
    'id': 53,
    'name': 'stats_no_card',
    'urlname': '/stats_statistic/stats_no_card',
    'titlename': '\\u6c47\\u603b\\u7edf\\u8ba1--\\u672a\\u5237\\u5361\\u5145\\u7535\\u7edf\\u8ba1',
    'pid': 46
  }
]

const stationMenuList = [
  {
    'id': 27,
    'name': 'agent',
    'urlname': '/agent/info',
    'titlename': '充电站管理',
    'pid': 0
  },
  {
    'id': 56,
    'name': 'station_manage',
    'urlname': '/station/stationManage',
    'titlename': '\\u7ad9\\u4fe1\\u606f\\u7ba1\\u7406',
    'pid': 27
  },
  {
    'id': 66,
    'name': 'pile_manage',
    'urlname': '/station/pileManage',
    'titlename': '\\u5145\\u7535\\u6869\\u7ba1\\u7406',
    'pid': 27
  },
  {
    'id': 36,
    'name': 'login_user_manage',
    'urlname': '/user_manage/login_user_manage',
    'titlename': '\\u767b\\u9646\\u7528\\u6237\\u7ba1\\u7406',
    'pid': 27
  },
  {
    'id': 38,
    'name': 'login_rule_manage',
    'urlname': '/user_manage/login_rule_manage',
    'titlename': '\\u767b\\u9646\\u7528\\u6237\\u89d2\\u8272\\u7ba1\\u7406',
    'pid': 27
  },
  {
    'id': 39,
    'name': 'login_log',
    'urlname': '/user_manage/login_log',
    'titlename': '\\u767b\\u9646\\u65e5\\u5fd7',
    'pid': 27
  },
  {
    'id': 40,
    'name': 'login_msg',
    'urlname': '/user_manage/login_msg',
    'titlename': '\\u767b\\u9646\\u6d88\\u606f',
    'pid': 27
  },
  {
    'id': 57,
    'name': 'vin_bus_info',
    'urlname': '/station/vinInfo',
    'titlename': 'VIN\\u8f66\\u724c\\u53f7\\u7ba1\\u7406',
    'pid': 27
  },

  {
    'id': 32,
    'name': 'custom',
    'urlname': '/custom/info',
    'titlename': '客户管理',
    'pid': 0
  },
  {
    'id': 37,
    'name': 'custom_info',
    'urlname': '/custom/info',
    'titlename': '客户管理',
    'pid': 32
  },

  {
    'id': 41,
    'name': 'record_query',
    'urlname': '/record_query/charge_history',
    'titlename': '\\u8bb0\\u5f55\\u67e5\\u8be2',
    'pid': 0
  },
  {
    'id': 42,
    'name': 'charge_history',
    'urlname': '/record_query/charge_history',
    'titlename': '桩日志流水',
    'pid': 41
  },
  {
    'id': 43,
    'name': 'upload_history',
    'urlname': '/record_query/upload_history',
    'titlename': '\\u6869\\u5b9a\\u65f6\\u4e0a\\u62a5\\u5386\\u53f2\\u8bb0\\u5f55',
    'pid': 41
  },
  {
    'id': 44,
    'name': 'deal_history',
    'urlname': '/record_query/deal_history',
    'titlename': '\\u4ea4\\u6613\\u8bb0\\u5f55',
    'pid': 41
  },
  {
    'id': 45,
    'name': 'error_history',
    'urlname': '/record_query/error_history',
    'titlename': '桩故障历史记录',
    'pid': 41
  },
  {
    'id': 59,
    'name': 'query_recharge_log',
    'urlname': '/record_query/query_recharge_log',
    'titlename': '\\u67e5\\u8be2\\u5145\\u503c\\u8bb0\\u5f55',
    'pid': 41
  },

  {
    'id': 46,
    'name': 'stats_statistic',
    'urlname': '/stats_statistic/stats',
    'titlename': '\\u7edf\\u8ba1\\u5206\\u6790',
    'pid': 0
  },
  {
    'id': 48,
    'name': 'stats_income',
    'urlname': '/stats_statistic/stats',
    'titlename': '\\u6c47\\u603b\\u7edf\\u8ba1',
    'pid': 46
  },
  {
    'id': 50,
    'name': 'stats_bus_income',
    'urlname': '/stats_statistic/stats_bus',
    'titlename': '\\u6c47\\u603b\\u7edf\\u8ba1--\\u5404\\u8f66\\u8f86',
    'pid': 46
  },
  {
    'id': 49,
    'name': 'stats_agent_income',
    'urlname': '/stats_statistic/stats_agent',
    'titlename': '汇总统计--各客户',
    'pid': 46
  },
  {
    'id': 63,
    'name': 'stats_iccard',
    'urlname': '/stats_statistic/stats_iccard',
    'titlename': '\\u6c47\\u603b\\u7edf\\u8ba1--\\u5404IC\\u5361',
    'pid': 46
  },
  {
    'id': 62,
    'name': 'stats_pile',
    'urlname': '/stats_statistic/stats_pile',
    'titlename': '\\u6c47\\u603b\\u7edf\\u8ba1--\\u5404\\u5145\\u7535\\u6869',
    'pid': 46
  },
  {
    'id': 60,
    'name': 'phone_user_income',
    'urlname': '/stats_statistic/phone_user_income',
    'titlename': '\\u6c47\\u603b\\u7edf\\u8ba1--\\u624b\\u673a\\u7aef\\u6536\\u5165\\uff08\\u6309\\u7528\\u6237\\uff09',
    'pid': 46
  },
  {
    'id': 51,
    'name': 'stats_charge_type',
    'urlname': '/stats_statistic/stats_charge_type',
    'titlename': '\\u6c47\\u603b\\u7edf\\u8ba1--\\u5145\\u7535\\u7c7b\\u522b',
    'pid': 46
  },
  {
    'id': 61,
    'name': 'stats_24h_type',
    'urlname': '/stats_statistic/stats_24h_type',
    'titlename': '\\u6c47\\u603b\\u7edf\\u8ba1--24\\u65f6\\u6bb5',
    'pid': 46
  },
  {
    'id': 47,
    'name': 'phone_income',
    'urlname': '/stats_statistic/phone_income',
    'titlename': '\\u6c47\\u603b\\u7edf\\u8ba1--\\u624b\\u673a\\u7aef\\u6536\\u5165\\uff08\\u6309\\u7ad9\\uff09',
    'pid': 46
  },
  {
    'id': 52,
    'name': 'stats_month_type',
    'urlname': '/stats_statistic/stats_month_type',
    'titlename': '\\u6c47\\u603b\\u7edf\\u8ba1--\\u6708\\u5ea6+\\u7c7b\\u522b',
    'pid': 46
  },
  {
    'id': 53,
    'name': 'stats_no_card',
    'urlname': '/stats_statistic/stats_no_card',
    'titlename': '\\u6c47\\u603b\\u7edf\\u8ba1--\\u672a\\u5237\\u5361\\u5145\\u7535\\u7edf\\u8ba1',
    'pid': 46
  },
  {
    'id': 64,
    'name': 'stats_kc',
    'urlname': '/stats_statistic/stats_kc',
    'titlename': '\\u6c47\\u603b\\u7edf\\u8ba1--\\u5f00\\u5361\\u5145\\u503c',
    'pid': 46
  }
]

/**
 * 登陆
 * @param {*} ctx
 */
async function postUserLogin (ctx) {
  logger.info(`【OPTIONS】 userlogin: ${JSON.stringify(ctx.request.body)}`)
  try {
    const res = await post(serverRoot + '/webapi/userlogin', {
      ...ctx.request.body
    }, {
      headers: {
        'Content-Type': 'application/json; charset=utf-8'
      }
    })
    logger.info(`【RESULT】 userlogin: ${JSON.stringify(res.data)}`)
    // 由于后台返回的是错误的menulist, 因此这里为了推进项目，模拟正确的menulist值
    // 待后台改正后去掉此代码
    const { code, data } = res.data
    if (code == 200) {
      const { menulist, operatorid, stationid, username } = data
      if (operatorid == 0 && stationid == 0) {
        // 超级管理员
        res.data.data.menulist = adminMenuList
      } else if (operatorid != 0 && stationid == 0) {
        // 运营商
        res.data.data.menulist = agentMenuList
      } else if (operatorid != 0 && stationid != 0) {
        // 充电站
        res.data.data.menulist = stationMenuList
      }
    }
    ctx.body = res.data
  } catch (e) {
    logger.error(`【ERROR】 userlogin: ${JSON.stringify(e)}`)
    ctx.body = {
      code: 500
    }
  }
}

/**
 * 登出
 * @param {*} ctx
 */
async function postUserLogout (ctx) {
  logger.info(`【OPTIONS】 userlogout: ${JSON.stringify(ctx.request.body)}`)
  try {
    const { data } = await post(serverRoot + '/webapi/userlogout', {
      ...ctx.request.body
    }, {
      headers: {
        'Content-Type': 'application/json; charset=utf-8'
      }
    })
    logger.info(`【RESULT】 userlogout: ${JSON.stringify(data)}`)
    // typeof data.data === 'string' && (data.data = JSON.parse(data.data))
    ctx.body = data
  } catch (e) {
    logger.error(`【ERROR】 userlogout: ${JSON.stringify(e)}`)
    ctx.body = {
      code: 500
    }
  }
}

module.exports = router => {
  router.post('/userlogin', postUserLogin)
  router.post('/userlogout', postUserLogout)
}
